// 定义一个事件总线的类
// 核心的方法：
// 1）、绑定事件：可以绑定多个事件
// 2）、触发事件

class EventBus{
    constructor(){
        // 定义一个属性，保存所有绑定的事件。
        this.events = {}
    }

    // 绑定事件：给this.events里增加事件
    subscribe(type,callback){//type:"chuan","onclick"
        if(!this.events[type]){
            this.events[type] = [];
        }
        this.events[type].push(callback);
    }

    // 触发事件：调用this.events里的函数
    publish(type,...args){//type:"chuan","onclick"
        this.events[type].forEach(item => {
            item(...args);
        });
    }
}


export default new EventBus();